<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../vue.js'></script>
</head>

<body>
    <div id='app'>
        <!-- v-model 是用来双向数据绑定用的，可以将输入的内容和 name 属性进行绑定 -->
        <input v-model="name" type="text" placeholder="请输入名称">
        <input v-model="age" type="text" placeholder="请输入年龄">
        <button @click="addClick">提交</button>

        <ul>
            <!-- 
                使用 v-for 的时候，一定要加一个 key 属性，而且该 key 属性还要是唯一的值，不能出现重复内容
                因为Vue使用的 虚拟 DOM ，当我们在最前面添加内容的时候，会在虚拟 DOM 前面添加，但是渲染的时候
                会在最后面添加一个真实 DOM，然后原来的标签位置不变，但是渲染的内容位置发生了变化。就会导致我们
                真实DOM出现顺序混乱的问题。
                解决该问题可以在使用 v-for 的时候添加一个 key 属性，将虚拟 DOM 和真实 DOM 进行绑定起来
            -->
            <li v-for="item in userList" :key="item.name" >
                <input type="checkbox" name="" id="">
                <span> {{item.name}} - {{item.age}} </span>
            </li>
        </ul>

    </div>
</body>
<script>
    const app = {
        data() {
            return {
                name: '',
                age: 0,
                userList: [
                    {
                        name: '张三',
                        age: 18,
                    },
                    {
                        name: '李四',
                        age: 20,
                    },
                    {
                        name: '王五',
                        age: 28,
                    }
                ]
            }
        },
        methods: {
            addClick() {
                this.userList.unshift({
                    name: this.name,
                    age: this.age
                })
            }
        },
    }
    const vm = Vue.createApp(app).mount('#app')
</script>

</html>